#define _CRT_SECURE_NO_WARNINGS

#ifndef _queue_h_
#define _queue_h_

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>

typedef int queue_data_type;
typedef struct q_node
{
	queue_data_type data;
	struct q_node* next;
}q_node;
typedef struct queue
{
	q_node* head;
	q_node* tail;
}queue;

void queue_init(queue* pq);
void queue_push(queue* pq, queue_data_type x);
void queue_pop(queue* pq);
void queue_destory(queue* pq);
int queue_size(queue* pq);
bool queue_empty(queue* pq);
queue_data_type queue_front(queue* pq);
queue_data_type queue_back(queue* pq);


#endif // !_queue_h_
